/**
 * 解决树回显时, 不渲染父节点半选的问题
 * @param menuIds 要选中的菜单key列表
 * @param treeData 树元数据
 * @returns {[]}
 */
export function getTreeCheckedKeys(menuIds, treeData) {
  const menuArr = []
  for (let j = 0; j < menuIds.length; j++) {
    const menuId = menuIds[j]
    const key = getNodeKeys(menuId, treeData)
    if (key !== '') {
      menuArr.push(key)
    }
  }
  return menuArr
}

// 获取选中的孩子节点
function getNodeKeys(menuId, children) {
  let key = ''
  for (let i = 0; i < children.length; i++) {
    const menu = children[i]
    const id = menu.id
    const child = menu.children
    // 如果相等
    if (id.toString() === menuId.toString()) {
      if (child && child.length > 0) {
        key = getNodeKeys(menuId, child)
        // 没有孩子节点
      } else {
        return menuId
      }
    } else if (child && child.length > 0) {
      key = getNodeKeys(menuId, child)
    }
    if (key !== '') {
      return key
    }
  }
  return key
}
